package com.atwisdom.star.core.bsl.planner;

import com.atwisdom.star.core.bsl.planner.entity.Holiday;

import java.time.LocalDate;
import java.util.List;

public interface WorkCalendarBslService {

    /**
     * 初始化假期
     */
    void initHoliday();
    /**
     * 获取某年某月假日集合
     * @param year 年
     * @param month 月
     * @return 返回假日集合
     */
    List<Holiday> getHoliday(int year, int month);

    /**
     * 获取某年某月假日集合
     * @param year 年
     * @param month 月
     * @return 返回假日集合
     */
//    List<String> fetchHoliday(int year, int month);
    /**
     * 获取假日集合
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 返回假日集合
     */
    List<Holiday> getHolidayList(LocalDate startDate, LocalDate endDate);

    /**
     * 检查传入的日期是否是假日
     * @param localDate 检查日期
     * @return 判断结果，true：假日，false:非假日
     */
    Boolean checkHoliday(LocalDate localDate);

    /**
     * 检查传入的日期是否是假日
     * @param holidays 假日集合
     * @param localDate 检查日期
     * @return 判断结果，true：假日，false:非假日
     */
//    Boolean checkHoliday(List<String> holidays, LocalDate localDate);
    /**
     * 获取工作日
     *
     * @param year  年
     * @param month 月
     * @return 获取工作日天数
     */
    int getWorkDay(int year, int month);

    /**
     * 获取工作日天数
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 获取工作日天数
     */
    int getWorkDay(LocalDate startDate, LocalDate endDate);
}
